/**
 * jims
 */
package com.jims.master.modules.sync.dao;

import com.jims.master.common.persistence.CrudDao;
import com.jims.master.common.persistence.annotation.MyBatisDao;
import com.jims.master.common.web.impl.BaseDto;
import com.jims.master.modules.sync.entity.LabApply;
import org.apache.ibatis.annotations.Param;

import java.util.List;
/**
 * 检验申请DAO接口
 * @author 陈晓阳
 * @version 2017-03-16
 */
@MyBatisDao
public interface LabApplyDao extends CrudDao<LabApply> {
    /**
     * 根据Id删除检验申请主表数据
     * @param id
     * @return
     * @author 陈晓阳
     */
    public int deleteLabApplyById(@Param("id") String id);

    public int deleteApply(@Param("id") String id);

    /**
     * 执行确认操作
     * @param id
     * @Param userId
     * @return
     */
    public int labConfirmDo(@Param("id") String id, @Param("userId") String userId);

    /**
     * 取消执行确认操作
     * @param id
     * @param userId
     * @return
     * @author 赵宁
     */
    public int cancelLabConfirmDo(@Param("id") String id, @Param("userId") String userId);

    /**
     *检验确认==住院
     * @param id
     * @return
     * @author 赵宁
     */
    public int labConfirmInHos(@Param("id") String id);

    /**
     * 取消检验确认--住院
     * @param id
     * @return
     * @author 赵宁
     */
    public int cancelLabConfirmInHos(@Param("id") String id);
    /**
     * 退费
     * @param labApply
     * @return
     */
    public int refundIng(LabApply labApply);

    /**
     * 护士端--检验未尽项目
     * @param visitId
     * @return
     * @author 赵宁
     */
    public List<LabApply> getUnfinishedLab(@Param("visitId") String visitId);

    LabApply getPrintInfo(@Param("id") String id);

    /**
     * 检验单打印
     * @param labApply
     * @return
     * @author CTQ
     */
//    public List<BaseDto> printLabApply(LabApply labApply, User user);

    public List<BaseDto> getLabItemName(@Param("applyId") String applyId);

    public int inpOutpRet(@Param("chargeFlag") String chargeFlag, @Param("id") String id);

    /**
     * emr接口查询检验以及检验结果
     * @param baseDto
     * @return
     */
    public List<BaseDto> findLabByEmr(BaseDto baseDto);

    public LabApply getApply(@Param("ordersId") String ordersId);

    public int delApply(@Param("ordersId") String ordersId);

    public List<BaseDto> getTjBlItem(@Param("ordersId") String ordersId, @Param("orgId") String orgId, @Param("implementDept") String implementDept);


    public List<LabApply> getByClinicId(@Param("clinicId") String clinicId);
}